23

» WarCraft 3 / Как определить минимальное расстояние

Похожие вопросы:

ответ
перебирать все точки, и запоминать ту которая меньше другой
например находил ближайшую я так
private void FG(){
        if DBU(GetEnumUnit(), Alien) < Distance {
            ChosenOne = GetEnumUnit()
            Distance = DBU(ChosenOne, Alien)
        }
    }
    
    private void InjuredInvoke(unit u){
        group g = CG
        unit egg
            GroupEnumUnitsInRect(g, bj_mapInitialPlayableArea, Filter(function EggFind))
                if CountGroup(g) > 1 {
                    Distance = 9999999.
                    Alien = u
                    ForGroup(g, function FG)
                    egg = ChosenOne
                    IssuePointOrderById(u, order_move, Gx(egg), Gy(egg))
                }
        GC(g)
        DG(g)
        g = null
        egg = null
    }

23

» Melee Campaign Heroes / Melee Campaign Heroes Pack - 167 maps

Ваш ресурс не прошёл автомодерацию. Пожалуйста, внесите исправления или ожидайте проверки модератором.
Причина
Подозрение в нарушении правил сайта. Требуется валидация человеком.
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
Suspicion of violating site rules. Human validation required.
// CID0
23

» Melee Campaign Heroes / Melee Campaign Heroes Pack - 167 maps

Ваш ресурс не прошёл автомодерацию. Пожалуйста, внесите исправления или ожидайте проверки модератором.
Причина
Подозрение в нарушении правил сайта. Требуется валидация человеком.
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
Suspicion of violating site rules. Human validation required.
// CID0
23

» WarCraft 3 / Ошибка в Mdlvis

Похожие вопросы:

ответ
Тут по-моему всё очевидно. Чадо пытается открыть в мдлвисе модель в формате m2, чего мдлвис не делает ещё с выхода burning crusade.
ответ
напиши создателю mdlvis
если найдёшь его а также у него будут исходники и желание фиксить баги то мб пофиксит
но скорее всего как минимум 2 и 3 пунктов будут отсутствовать
ответ
XGM Bot:
Похожие вопросы:

ответ
советую переименовать модель\заребутить комп
текстуры стандартные юзал, я так понимаю

ответ
Нужен 139 мдлвис
ответ
Для мдлвиса нужен формат mdx 800 или ниже, попробуй или прогнать ещё через ретеру, или из своей программы выбрать формат подходящий для мдлвиса

23

» WarCraft 3 / Моделирование

Похожие вопросы:

ответ
Делается ось через ось.
когда одна вращается по Х другая может по У и так далее
ответ
ответ
Всё. Понял в чём проблема

23

» WarCraft 3 / Спавн юнитов у здания.

Похожие вопросы:

ответ
Отлавливаеш момент завершения улучшения и триггерно выдаеш такое-же улучшение тому чьи юниты.
ответ
Drulia_san, посмотрел код, если this есть 0 в обычном методе, то это значит, что там где ты вызываешь Restore для StructuresSnapshot ты передаешь 0.
call obj.Restore()  // obj равен 0, а его тип есть StructuresSnapshot.
ответ
Погляди оригинал способность "Призыв к оружию" и "Работника" с "Ополченцем".
Как я помню у обоих указан одинаковый список зданий, проблема в редакторе объектов.
ответ
Алексей Андреич:

Примерно так

23

» WarCraft 3 / Графика не переключается на Reforged

Похожие вопросы:

ответ
Поскольку никто не ответил, то пришлось решить вопрос самому. Описанный ниже способ пригодится и для изменения других параметров в файле w3i. Для решения я использовал программу W3x2Lni
  1. Запускаем W3x2Lni и помещаем карту сохраненную в классическом редакторе в DnD область программы.
  2. Конвертируем карту в форма Lni, выбрав первый вариант (синяя кнопка). Внутри прожать все флаги.
  3. В директории W3x2Lni появится папка с наименованием вашей карты. Внутри нужно найти папку table, а внутри неё файл w3i (расшифрованный). Скопируйте файл.
  4. Проделываем пункты 1-3 но уже с картой сохраненной в reforged редакторе. Получаем w3i расшифрованный из ref версии карты.
  1. Открываем текстовым редактором w3i из классик редактора и w3i из реф редактора.
  2. Переносим все новые строки из w3i ref в w3i классик.
  3. В готовом w3i классик меняем значения:
  • format_version = 31 (было 25)
  • supported_modes = 1
Строка supported_modes это искомая настройка графического режима (SD/HD = 0, SD = 1, HD = 2). Если format_version не перевести с 25 на 31, то строка supported_modes будет проигнорирована (см. структуру w3i).
  1. Помещаем готовый w3i в папку W3x2Lni/наша карта из классик редактора/table
  2. Снова открываем W3x2Lni переносим папку классик карты в DnD область программы.
  3. Конвертируем карту в Obj формат (оранжевая кнопка).
  4. Готовый файл карты появится в директории W3x2Lni

23

» WarCraft 3 / Проблема с кастомным героем

Похожие вопросы:

ответ
"Набор звуков" нельзя сделать через триггеры, но можно попробовать через импорт файлов заменить стандартные файлы в уже существующих наборах.
Для этого импортируемому файлу надо прописать путь заменяемого.
ответ
Вся информация по редактору AI тут
ответ
Ответ простой, это beta.
ответ
Тут 2 варианта, надо в редактор ИИ загрузить нестанадратные данные по объектам
Если используется 100% стандартное ИИ то надо его обучить.. делается это простым гуи триггером
Событие - игрок повышет уровень
Условие (2 условия), Тип героя= ваш герой, владелец юнита =управляется компьютером
Действие - учить скилы:
Учим способность R
Учим способность Q - Q спосбность приоритетной прокачки
Учим способность W
Учим способность E
А тут надо быть внимательным... изучение ульты требуется указать вначале... чтобы герой выучил ульту на 6 уровне...
или тут можно зарандомить или написать своё алгоритм.. или же чтобы ИИ учил скилы по другом условиям...в зависимости от тот как у него идёт игра
ответ
так зачем ты системные-игровые файлы заменяешь? не думаю что тут кто-то больше графики и звуков меняет. Хотя у меня ещё изменённый редактор, главное меню и кастомные кампании есть... это всё не может иметь отношения к десконнектам (и не имеет)

Ладно если по делу, с этой карты тоже десинхнуло, отключил локальные файлы - так же десинхнуло. Во все остальные могу нормально играть.. ну как играть, я сам ливаю на 2 минуте, играть то не во что

23

» WarCraft 3 / Проблема с триггером

Похожие вопросы:

ответ
Проблема решилась, после соединения с администратором карта заработала и сохранилась. И на следующей карте соединения уже нет. Спасибо.
ответ
Mate, ну очивидно ошибка реализации, ибо используются одни и те же массивы, в которых происходит коллизия, одни и те же ячейки используют раные способности. Вовсе я бы не советовал так замарачиватся с гуи, а прочитать статьи на jass и забить на все это дело, юзая хештаблицы.
ответ
если ты создаешь нейтрально-враждебных то нужно им в игровых константах менять значения
пошамань с этими значениями и все норм будет, ну а если у тебя монстры под контролем других игроков а не нейтралов, то тогда не знаю даже

guard distance - это расстояние на котором крипы агряться
guard return distance - это на какое расстояние мобы могут отходить от место их создания, если они отошли на 1000 они возвращаются обратно
guard return time - типо тоже самое что с расстоянием, только время
остальное вроде тебе не надо вообще
ответ
Не вижу второй триггер но увидев первый, думаю что событие накладывается много раз, поэтому много лечения
ответ
при нажатии эскейпа выставляешь переменную булевой на тру, перед тем как проиграть следующую камеру/реплику/покакать, проверяешь значение этой переменной, если соответствует истине, пропускаешь все остальные действия, перед этим можно запустить другой триггер который отвечает за конец синематика (т.е. выдача заданий, выставление камеры в норму, выход из синематика и т.д.)

23

» WarCraft 3 / Не работает перенос моделей в редактор.

Похожие вопросы:

ответ
Maxsavin, я каждой карте из кампаний даю свой кэш, чтобы не перепуталось ничего.
Не знаю, что получилось бы, сделай я один кэш-файл на всю кампу и грузи карты потом не по порядку. Проверять не буду.
Кампания - это пак карт.

23

» WarCraft 3 / Retera Model Studio не запускается

Похожие вопросы:

ответ
ну так у тебя текстуры выключены, зайди в view - и поставь галочку на texture models

23

» WarCraft 3 / Как сделать простой рандом?

Похожие вопросы:

ответ
Хозяин Миров, для начала прочитать весь список функций
или научится юзать поиск по функциям
ибо GetRandomInt(n,m)
где n начало промежутка из которого берутся числа а m конец
ответ
нормальный в варкрафте рандом, это человек делает микроскопическую выборку и удивляется результатам
ответ
~8gabriel8:
Файл - Параметры - Проверка карты - "Фиксированный случайный разброс"

23

» WarCraft 3 / Использование файлов preload

Похожие вопросы:

ответ
В общем во время сохранения файла я попробую продублирую весь код, во время загрузки файла я сначало выполню файл в котором чисто Preload("Код") чтобы его занести на компьютер клиента, а только потом начну выполнять Preload("\")\n <Код>\n//"). Надеюсь сработает. А про то что никто в этом не видит смысла, так часто говорят.
Получилось так что я допустил туже ошибку...
Может есть какая-нибудь нативка/функция которая будет синхронизировать информацию? Если нет, то скорее всего я зря пытаюсь.
Есть какая-нибудь статья про TriggerSyncReady и Start? xgm.guru/p/wc3/159609, тут обсуждается похожая ситуация.
В общем дождался друга чтоб протестить TriggerSyncStart и Ready, в итоге я поставил их перед функцией Preloader(сначало Start потом Ready) и всё десинк пропал.

23

» Администрация XGM / Не отображаются ресурсы

Похожие вопросы:

ответ
N7 Molot:
Иногда нужно переставлять картинку. Теперь отображается.
ответ
ответ
Обновил навигацию и добавил подменюшку в профиле.
Но это не помогло найти твои ресурсы. У тебя нет ни опубликованных, ни снятых с публикации ресурсов.
Счетчик ресурсов в профиле не меняли давно - сломаться это не могло.
Есть только записи в блоге, а это не листится в списках ресурсов.
Записи блогов работают как нужно - мы не оцениваем их качество, но и не продвигаем в индексе.
В связи с этим появился вопрос - а были ли у тебя ресурсы?

Я знаю, что был xgm.guru/p/wc3/new-rules-maps но автора публикации сменили на niken 31.12.2021
Не знаю, зачем, но уже не важно - ресурс больше не представляет ценности.
ответ
Должно заработать

23

» WarCraft 3 / Триггерное заклинание

Похожие вопросы:

ответ
Всем спасибо, проблему решил за счет проверки на цвет/номер игрока как индекс в массиве переменных. Все работает как запланировано.
Вопрос вдогонку: как можно задавать сам индекс переменной-массива?)
З.Ы. Массивы конечно зло, но другого способа хранить инфо по одному спеллу, не используя множество переменных - пока не умею.
ответ
Заклинание "Подчинение" или "Очарование"(зависит от перевода) или "Charm" в английской версии.
ответ
Pingvinromeo, проблема в том что ты фигню творишь
если спел применён в точку то точка есть
перемещение это 1 действие
за это время точка не исчезнет
короче пруфы того что не работает
ответ
  1. Для этого есть xgm.guru/p/wc3/needspells
  2. Рекомендую прочитать статьи по этому поводу.
3.
  1. Или такой пример
local unit c = GetTriggerUnit()
local unit tg = GetSpellTargetUnit()
//local real x1 = GetUnitState(c, UNIT_STATE_MAX_LIFE )
//local real x2 = GetUnitState(c, UNIT_STATE_MAX_MANA )
//local real x3 = GetUnitState(c, UNIT_STATE_MANA )
//local real z = I2R(GetHeroAgi(c, TRUE ))
//local real z1 = I2R(GetHeroAgi(c, TRUE ))
//local real z2 = I2R(GetHeroStr(c, TRUE ))
//local real z3 = I2R(GetHeroInt(c, TRUE ))
local real zall = I2R(GetHeroInt(c, TRUE ) + GetHeroStr(c, TRUE ) + GetHeroAgi(c, TRUE ))
call UnitDamageTarget( c, tg, zall, true, true, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS )
set c = null
set tg = null
И вообще сформулируйте вопрос правильнее..
ответ
Alexey103, а у меня работает, проверял. тут ошибка в названии переменной, скорее всего, зачем ты задал такое. Мб оно слишком длинное и через нижнее подчеркивание? и путь модель указывают в jass не через один обратный слэш "/", а через двойной слэш "//". Это на гуи один, на джаз два слэша

23

» WarCraft 3 / Запрет выбора юнита

Похожие вопросы:

ответ
Может, очищать выбор для игрока?
Событие: игрок выбирает юнита
Условие: Выбранный юнит принадлежит (Triggering Player)
Действие: очистить выбор для игрока (Triggering Player)
Как-то так примерно. Других вариантов не вижу.
ответ
От контекста зависит, например на текущем патче я бы сделал так...
  1. При создании заносим юнит в переменную, юнит создаётся с москитом
  2. Далее юнита можно всегда выбирать триггерно
  3. Если надо снова начать выделять юнита, можно ловить клик мыши рядом с юнитом....
Если любой патч и нодо чтобы враг был невыделяем, например типа способность, невыделяемый и нельзя навести... например сларк в ульте, срабатывают только скилы по площади, есть 1 старый баг по возвращению выделения после москита, я его не особо помню но на форуме 3жды упоминался (мне не надо и я не запомнил)
Исходные данные: юнит не выделяем и он москит, нужно вернуть выделение
  1. Удалить москита
  2. Скрыть юнита
  3. Показать юнита
как-то так
ответ
~8gabriel8:
В любом случае приказ ПКМ - это приказ smart, то есть попробуй такой триггер:
Событие - Generic unit Отдал приказ цель-точка
Условие - Unit-type of (Triggering unit) равно Твой_городской_защитник и (Issued order) равно smart
Действие - Pause (Triggering unit), Issue order with no target Стоп (Triggering unit) и Unpause (Triggering unit)

23

» WarCraft 3 / Авангард Нежити (кооп версия на 2)

Ваш ресурс не прошёл автомодерацию. Пожалуйста, внесите исправления или ожидайте проверки модератором.
Причина
Число вставленных изображений: 0, а требуется не менее 3
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
Count of inserted images is: 0, but required not less than 3
// CID3
23

» Администрация XGM / поиск по сайту

Похожие вопросы:

ответ
Fakov, я бы предложил тебе выучить русский язык.
По теме - попробуйте юзать гугл например
ответ
вот он. Находится в меню (правый верхний угол).
ответ
nvc123, не понимаю сути претензий. Да, вопрос нубский (для тебя). Но тем не менее твой ответ — бессодержательный.
ответ
Найди у себя ошибку: JNGP
ответ
Кнопки некоторые обновил, но это всё временно. По остальному - поток мыслей, это не в вопросах должно быть. Нужно как-то организовываться и приходить к концепту.

23

» WarCraft 3 / Путь текстуры

Похожие вопросы:

ответ
Для новичков в очередной раз рекомендую WC3Pather (есть в инвентаре юного модмейкера), главное знать, что на что менять. Или то, что подсказал alexprey.
ответ
Нужно писать пути в редакторе интерфейса.
ответ
100% будет работать, если заменить стандартные текстуры деревьев, а в самих моделях вместо пути к текстуре указать соответствующий Replaceable ID. (Если порченные версии тоже заменить под новую модель, то ещё и порча будет корректно работать =)
ответ
Привет, Аскарто. :) Короче, в объект едиторе сторожевая башня - обычная башня альянса с анимациями upgrade, first.
Прописывать в строке Графика - нужная анимация.

23

» WarCraft 3 / Как отловить цвет

Похожие вопросы:

ответ
Реализовал через второй вариант:
Дальше пришла в голову другая идея. Думаю, можно сделать с помощью ремонта зданий Альянса: на месте смерти героя создаётся здание с моделью креста со здоровьем 1/100 ед., а союзные герои ремонтируя крест будут повышать её здоровье, получается некая иллюзия прогресс бара. И если спрятать способность ремонта с помощью функции HideAbilityButton( ) из мемхака, то будет ли она срабатывать при нажатии на ПКМ? Также, как отловить момент полного ремонта здания? С помощью таймера проверять процент здоровья каждые доли секунды?
раскрыть
scope HeroRevive initializer Initialization


    struct herorevive
        private                    unit           dyingUnit
        private                    unit           reincarnate
        private                    real           life

        private                    thistype       prev
        private                    thistype       next

        public   static  constant  trigger        trig    =  CreateTrigger( )
        public   static  constant  timer          period  =  CreateTimer( )


        private static method iterate takes nothing returns nothing
            local  thistype  this  =  thistype( 0 ).next

            loop
                exitwhen ( this == 0 )

                if ( GetWidgetLife( this.reincarnate ) > this.life ) then
                    set  this.life  =  GetWidgetLife( this.reincarnate )

                elseif ( GetWidgetLife( this.reincarnate ) >= GetUnitState( this.reincarnate, UNIT_STATE_MAX_LIFE ) ) then
                    call ReviveHero( this.dyingUnit, GetUnitX( this.dyingUnit ), GetUnitY( this.dyingUnit ), true )
                    call RemoveUnit( this.reincarnate )

                    set  this.reincarnate  =  null
                    set  this.life         =  0.0

                    set  this.prev.next    =  this.next
                    set  this.next.prev    =  this.prev

                    if ( thistype( 0 ).next == 0 ) then
                        call PauseTimer( thistype.period )
                    endif

                    call thistype.deallocate( this )

                elseif ( GetWidgetLife( this.reincarnate ) <= this.life ) then
                    set  this.life  =  1.0
                    call SetWidgetLife( this.reincarnate, this.life )
                endif

                set this = this.next

            endloop
        endmethod


        public static method actions takes nothing returns nothing
            local  thistype  this  =  thistype.allocate( )

            set  this.next         =  0
            set  this.prev         =  thistype( 0 ).prev
            set  this.next.prev    =  this
            set  this.prev.next    =  this

            set  this.dyingUnit    =  GetDyingUnit( )
            set  this.reincarnate  =  CreateUnit( GetOwningPlayer( this.dyingUnit ), 'h003', GetUnitX( this.dyingUnit ), GetUnitY( this.dyingUnit ), 0.0 )
            set  this.life         =  1.0

            call SetUnitPathing( this.reincarnate, false )
            call SetWidgetLife( this.reincarnate, this.life )

            if ( this.prev == 0 ) then
                call TimerStart( thistype.period, 0.10, true, function thistype.iterate )
            endif
        endmethod


        public static constant method conditions takes nothing returns boolean
            return IsUnitType( GetDyingUnit( ), UNIT_TYPE_HERO )
        endmethod


    endstruct


    public function Initialization takes nothing returns nothing
        call TriggerRegisterPlayerUnitEvent( herorevive.trig, Player( 1 ), EVENT_PLAYER_UNIT_DEATH, null )
        call TriggerRegisterPlayerUnitEvent( herorevive.trig, Player( 2 ), EVENT_PLAYER_UNIT_DEATH, null )
        call TriggerRegisterPlayerUnitEvent( herorevive.trig, Player( 3 ), EVENT_PLAYER_UNIT_DEATH, null )
        call TriggerRegisterPlayerUnitEvent( herorevive.trig, Player( 4 ), EVENT_PLAYER_UNIT_DEATH, null )

        call TriggerAddCondition( herorevive.trig, Condition( function herorevive.conditions ) )
        call TriggerAddAction( herorevive.trig, function herorevive.actions )
    endfunction


endscope
Вот только если спрятать кнопку через HideAbilityButton( ), то способность ремонта зданий исчезает и не работает через ПКМ.

23

» WarCraft 3 / Высота молнии

Похожие вопросы:

ответ
Кароч
есть инфа
что если хочешь стандартный скилл с небольшим изменением
но не можешь отловить его цели
то можно тупо ловить урон
при этом кастуя скилл с даммика
и вылавливать урон только от даммика
да?
Но это вариант для тех кому лень...
а тебе я так вижу не лень
ответ
native AddLightningEx takes string codeName, boolean checkVisibility, real x1, real y1, real z1, real x2, real y2, real z2 returns lightning
наработка
в jngp есть встроенная библиотека ссылка на коммент с картинками как пользоваться библиотекой, сайты есть ссылка или достаете из архива игры текстовик со всеми нативками и функциями. в них ctlr + F поиск вбиваете lightning

23

» WarCraft 3 / В какие кампании поиграть?

Похожие вопросы:

ответ
Вот кстати карта с примером...
ответ
EHP_Sequence, значит делаем то сто делали и на прошлых версиях. Если папка campaigns отсутствует просто создаём ее.
ответ
Играйте через Ирину.

23

» Администрация XGM / Режимы публикации ресурсов

Похожие вопросы:

ответ
По stand мы так и делаем. По превью пока сложно. Возможно, вернемся к этому, когда отточим все механики обычного показа моделей.
Нам в этом плане ещё по механикам файловой системы надо пахать, мы даже размеры картинок не храним по историческим причинам.

23

» WarCraft 3 / Автоприменение способности

Похожие вопросы:

ответ
EAX, сделал. Немного костыльно конечно. Разберешься как и подстроишь под твою систему.
Что делаю:
  • в требованиях огненных стрел поставил Пехотинца
  • включая триггер создаю пехотинца и прячу его
  • выключая удаляю пехотинца
Проверил, все работает и у компа. Карту пример приложил.
ответ
Ответ на мой вопрос: используйте способность "Канал", как основу для ваших способностей. Потому что AI никогда не использует способности, которые основаны на способности "Канал" сам.
ответ
Ну берёшь канал, и при его касте создаёшь под кастером даммика, который использует обычного паразита в указанную цель, всё.
ответ
В редакторе объектов поищи поля, в которых написан приказ (скорее всего, там в конце написано "on" и "off" ) и триггерно отдай приказ, указанный в поле.
native IssueImmediateOrder (unit whichUnit, string order) returns boolean
Был бы поблизости комп с редактором - написал бы точнее.